<?php

App::uses('AppController', 'Controller');

/**
 * Maneja la información de los usuarios
 * 
 * @author vcanizares
 */
class UsuarioController extends AppController {
	
	/**
	 * Componentes
	 */
	//public $components = array('RequestHandler');
	
	/**
	 * Helpers
	 */
	//public $helpers = array('Js');
	
	/**
	 * Nombre del controlador
	 */
	public $name = 'Observador';
	
	/**
	 * Modelos
	 */
	public $uses = array('Observador');
	
	
	
	/**
	 * Funcion que se ejecuta al inicio
	 */
	public function index() {
        $this->Observador->recursive = 0;
        $this->set('observadores', $this->paginate());
    }

    /**
     * Funcion que se ejecuta cuando queremos visualizar un observador
     * 
     * @param number $id
     */
    public function ver($id = null) {
        $this->Observador->id = $id;
        if (!$this->Observador->exists()) {
            throw new NotFoundException(__('Observador no válido.'));
        }
        $this->set('observador', $this->Observador->read(null, $id));
    }

    /**
     * Funcion que se ejecuta cuando queremos insertar un nuevo observador 
     */
    public function crear() {
        if ($this->request->is('post')) {
            $this->Observador->create();
            if ($this->Observador->save($this->request->data)) {
                $this->Session->setFlash(__('El observador ha sido creado.'));
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('El observador no ha podido crearse. Por favor, inténtelo de nuevo.'));
            }
        }
    }

    /**
     * Funcion que se ejecuta cuando queremos editar los datos de un observador ya existente 
     */
    public function editar($id = null) {
        $this->Observador->id = $id;
        if (!$this->Observador->exists()) {
            throw new NotFoundException(__('Observador no válido.'));
        }
        if ($this->request->is('post') || $this->request->is('put')) {
            if ($this->Observador->save($this->request->data)) {
                $this->Session->setFlash(__('Los datos han sido guardados correctamente.'));
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('Los datos no han podido ser guardados. Por favor, inténtelo de nuevo.'));
            }
        } else {
            $this->request->data = $this->Observador->read(null, $id);
            unset($this->request->data['Observador']['password']);
        }
    }

    /**
     * Funcion que se ejecuta cuando queremos eliminar un observador previamente dado de alta
     */
    public function borrar($id = null) {
        if (!$this->request->is('post')) {
            throw new MethodNotAllowedException();
        }
        $this->Observador->id = $id;
        if (!$this->Observador->exists()) {
            throw new NotFoundException(__('Observador no válido.'));
        }
        if ($this->Observador->delete()) {
            $this->Session->setFlash(__('Observador eliminado.'));
            $this->redirect(array('action' => 'index'));
        }
        $this->Session->setFlash(__('El observador no ha podido ser eliminado. Por favor, inténtelo de nuevo.'));
        $this->redirect(array('action' => 'index'));
    }
}

?>